package sf.sort;

import java.util.Arrays;

public class BubbleSort implements Sort{

    public void sort(int[] unsorted) {
        // 冒泡算法是通过前后比较，如果后面值比前面小，则交换，这样每一轮循环就把最后一个数确定了
        for (int i = 0; i < unsorted.length - 1; i++) {
            for (int j = 0; j < unsorted.length - i - 1; j++) {
                // 比较前后两个数，这样每一轮的数都是
                int temp = unsorted[j];
                int next = unsorted[j + 1];
                if (next < temp) {
                    unsorted[j] = next;
                    unsorted[j + 1] = temp;
                }
            }
        }
        // 算法的复杂度在O(n^2)
    }

    public static void main(String[] args) {
        final BubbleSort bubbleSort = new BubbleSort();
        final int[] unsorted = {3, 2, 1, 4, 6, 7};
        bubbleSort.sort(unsorted);
        System.out.println(Arrays.toString(unsorted));
    }

}
